The Euronext R Package is a powerful tool for accessing and retrieving financial information from the Euronext stock exchange. Whether you are interested in stocks, indexes, funds, ETFs, or bonds, this package provides a convenient interface to gather essential data for analysis and decision-making in the financial domain. With user-friendly functionalities, it simplifies the process of collecting historical data on share prices, trading volumes, and other financial indicators. Researchers, investors, and other users can extract valuable insights and make informed decisions based on the comprehensive information available. In essence, the ‘Euronext’ library is a valuable asset for those seeking a deeper understanding of Euronext and the financial markets in Europe.
Le package R Euronext est un outil puissant pour accéder et récupérer des informations financières de la bourse Euronext. Que vous soyez intéressé par les actions, les indices, les fonds, les ETF ou les obligations, ce package offre une interface pratique pour collecter des données essentielles pour l’analyse et la prise de décision dans le domaine financier. Avec des fonctionnalités conviviales, il simplifie le processus de collecte de données historiques sur les prix des actions, les volumes de transactions et d’autres indicateurs financiers. Les chercheurs, les investisseurs et d’autres utilisateurs peuvent extraire des informations précieuses et prendre des décisions éclairées en se basant sur les informations complètes disponibles. En somme, la bibliothèque ‘Euronext’ est un atout précieux pour ceux qui cherchent à approfondir leur compréhension d’Euronext et des marchés financiers en Europe.
You can install the development version of EURONEXT from github with:
# github dev version
## We can use devtools
# Install the development version from GitHub
devtools::install_github("Fredysessie/Euronext")
# Or use remotes
# install.packages("remotes")
remotes::install_github("Fredysessie/Euronext")
This function receives as input stock_choice and then retrieves a list of companies listed on the provided Euronext stock exchanges, filtered by the initial letter of their names. It provides information such as the company name, ticker symbol, ISIN code, market, last closing price, percentage change, and a link to the company’s details on the Euronext website. - stock_choice A character string specifying the stock exchange. Options include “A” or “Amsterdam,” “B” or “Brussels,” “D” or “Dublin”, “L” or “Lisbon,” “M” or “Milan,” “P” or “Paris,” and “O” or “Oslo.”
# library(Euronext)
# library(httr)
# library(httr2)
# library(rvest)
# library(jsonlite)
# library(stringr)
# The columns names of the initial dataframe is c("Date", "Name", "Ticker", "Code_ISIN", "Market", "Last_price", "Percentage change (in %)", "URL", "Ticker_adn")
# So I will only display columns "Name", "Ticker", "Code_ISIN", "Market", "Last_price" and "Percentage change (in %)"
a_result_df <- EN_Stocks_List("A") # For Amsterdam Stock
head(a_result_df)[,c(2:6)]
#> Name Ticker Code_ISIN Market Last_price
#> 1 AALBERTS NV AALB NL0000852564 XAMS €35.77
#> 2 ABN AMRO BANK N.V. ABN NL0011540547 XAMS €13.23
#> 3 ACCSYS AXS GB00BQQFX454 XAMS €0.68
#> 4 ACOMO ACOMO NL0000313286 XAMS €17.42
#> 5 ADUX ADUX FR0012821890 XPAR, XAMS €1.20
#> 6 ADYEN ADYEN NL0012969182 XAMS €1
b_result_df <- EN_Stocks_List("B")[,c(2:6)] # For Brussels Stock
tail(b_result_df)
#> Name Ticker Code_ISIN Market Last_price
#> 138 WDP WDP BE0974349814 XBRU, XAMS €26.08
#> 139 WERELDHAVE BELGIUM WEHB BE0003724383 XBRU €47.30
#> 140 WHAT WHATS BE0003573814 XBRU €60.20
#> 141 WHITESTONE GROUP ROCK BE0974401334 ALXB €10.40
#> 142 XIOR XIOR BE0974288202 XBRU €26.95
#> 143 ZENOBE GRAMME CERT ZEN BE0003809267 XBRU €180.00
p_result_df <- EN_Stocks_List("P")[,c(2:6)] # For Paris Stock
head(p_result_df)
#> Name Ticker Code_ISIN Market Last_price
#> 1 1000MERCIS ALMIL FR0010285965 ALXP €24.80
#> 2 2CRSI AL2SI FR0013341781 ALXP €4.61
#> 3 A.S.T. GROUPE ALAST FR0000076887 ALXP €1.005
#> 4 AB SCIENCE AB FR0010557264 XPAR €3.07
#> 5 ABC ARBITRAGE ABCA FR0004040608 XPAR €4.05
#> 6 ABEO ABEO FR0013185857 XPAR €14.60
l_result_df <- EN_Stocks_List("L")[,c(2:6)] # For Lisbon Stock
head(l_result_df)
#> Name Ticker Code_ISIN Market Last_price
#> 1 AGUAS DA CURIA CUR PTCUR0AP0000 ENXL €1.17
#> 2 ALTRI SGPS ALTR PTALT0AE0002 XLIS €4.456
#> 3 ATRIUM BIRE SIGI MLATR PTTBI0AM0006 ENXL NANA
#> 4 B.COM.PORTUGUES BCP PTBCP0AM0015 XLIS €0.2587
#> 5 BENFICA SLBEN PTSLB0AM0010 XLIS €2.92
#> 6 COFINA,SGPS CFN PTCFN0AE0003 XLIS €0.394
m_result_df <- EN_Stocks_List("M")[,c(2:6)] # For Milan Stock
head(m_result_df)
#> Name Ticker Code_ISIN Market Last_price
#> 1 3D SYSTEMS CORP 4DDD US88554D2053 ETLX €4.728
#> 2 3D SYSTEMS CORP 1DDD US88554D2053 BGEM €4.65
#> 3 3D SYSTEMS CORP 2DDD US88554D2053 MTAH €4.542
#> 4 3M 4MMM US88579Y1010 ETLX €87.00
#> 5 3M 1MMM US88579Y1010 BGEM €88.06
#> 6 3M 2MMM US88579Y1010 MTAH €88.04
d_result_df <- EN_Stocks_List("D")[,c(2:6)] # For Dublin Stock
head(d_result_df)
#> Name Ticker Code_ISIN Market Last_price
#> 1 AIB GROUP PLC A5G IE00BF0L3536 XMSM €3.988
#> 2 AQUILA AERI GB00BK6RLF66 XESM €0.7938
#> 3 BANK OF IRELAND GP BIRG IE00BD1RP616 XMSM €8.072
#> 4 CAIRN HOMES PLC C5H IE00BWY4ZF18 XMSM €1.416
#> 5 CORRE ENERGY B.V. CORRE NL0015000DY3 XESM €1.30
#> 6 CRH PLC 5PCCumPref DD8A IE0001827264 XMSM €1.00
o_result_df <- EN_Stocks_List("O")[,c(2:6)] # For Oslo Stock
head(o_result_df, 10)
#> Name Ticker Code_ISIN Market Last_price
#> 1 2020 BULKERS 2020 BMG9156K1018 XOSL NA139.50
#> 2 5TH PLANET GAMES 5PG DK0060945467 XOAS NA1.828
#> 3 AASEN SPAREBANK AASB NO0010672181 MERK NA128.00
#> 4 ABG SUNDAL COLLIER ABG NO0003021909 XOSL NA6.22
#> 5 ABL GROUP ABL NO0010715394 XOSL NA12.50
#> 6 ADEVINTA ADE NO0010844038 XOSL NA112.60
#> 7 ADS MARITIME HOLD ADS CY0108052115 MERK NA2.14
#> 8 AEGA AEGA NO0012958539 XOAS NA2.3105
#> 9 AF GRUPPEN AFG NO0003078107 XOSL NA117.00
#> 10 AGILYX AGLX NO0010872468 XOSL NA25.50
EN_Etfs_List receives as input tot_page which is the total number of pages to retrieve. In contrast, EN_Etfs_List_bis receives as input target_page which represents the target page. For example, the function EN_Etfs_List_bis(5), retrieves only the fifth page of the Etfs list, allowing more granular control of the data retrieval process (ordered list of 100 Etfs), whereas EN_Etfs_List(5) would return an ordered list of 500 Etfs listed on Euronext (on each page there are 100 Etfs, so for 5 pages 5*100 = 500).
# Get 1st 500 Etfs in alphabetic order
dt_ <- EN_Etfs_List()
head(dt_[, c(2:9)])
#> Name Ticker Code_ISIN Market Bid Ask Last_price
#> 1 $Asia IG Corp US A ASIG IE0007G78AC4 XAMS - - $4.7937
#> 2 -1X SHORT DIS SDIS XS2337085422 XAMS - - €6.861
#> 3 -1X SHORT PLTR SPLR XS2337086669 XAMS - - €2.0178
#> 4 -1X SHORT PLUG SPLU XS2336362079 XAMS - - €3.8327
#> 5 -3X ARK INNOVATION SARKK XS2399368906 XAMS - - €0.7373
#> 6 -3x China Tech SKWE XS2399370126 XAMS - - €0.3382
#> Percentage_change
#> 1 -1.02
#> 2 -0.13
#> 3 -3.87
#> 4 2.77
#> 5 7.90
#> 6 0.45
tail(dt_[, c(2:9)])
#> Name Ticker Code_ISIN Market Bid Ask Last_price
#> 495 AMUNDI UST 10+ US10 LU1407890620 XPAR - - $105.349
#> 496 AMUNDI W WATER PEA AWAT FR0011882364 XPAR - - €27.554
#> 497 AMUNDIETF CAC40(D) C4D LU1681047079 XPAR - - €75.27
#> 498 AmUSA Climate USA IE000QQ8Z0D8 XPAR - - €437.66
#> 499 AmUSA Climate USAC IE0006IP4XZ8 XPAR - - €464.337
#> 500 AMUSTRMULDETFP CL2 FR0010755611 ETFP - - €16.93
#> Percentage_change
#> 495 -1.59
#> 496 -0.44
#> 497 0.07
#> 498 0.55
#> 499 0.09
#> 500 1.06
# The number of columns and rows
dim(dt_)
#> [1] 500 11
dt_1 <- EN_Etfs_List_bis() #By default returns the list of 100 Etfs in alphabetic order
head(dt_1[, c(2:9)])
#> Name Ticker Code_ISIN Market Bid Ask Last_price
#> 1 AMUNDI MSC WTEC TNOW LU0533033667 XPAR - - €683.71
#> 2 AMUNDI MSCI BRAZIL RIO LU1900066207 XPAR - - €21.273
#> 3 AMUNDI MSCI BRAZIL BRZ LU1437024992 XPAR - - $53.4557
#> 4 Amundi MSCI CHINA CNEG LU2343997487 XPAR - - €23.489
#> 5 AMUNDI MSCI EM DR AEME LU1437017350 XPAR - - €58.896
#> 6 AMUNDI MSCI EM DR AEME LU1437017350 XAMS - - $63.425
#> Percentage_change
#> 1 0.89
#> 2 0.63
#> 3 0.03
#> 4 1.70
#> 5 0.64
#> 6 0.49
tail(dt_1[, c(2:9)])
#> Name Ticker Code_ISIN Market Bid Ask Last_price
#> 95 AMUNDI UST 10+ US10 LU1407890620 XPAR - - $105.349
#> 96 AMUNDI W WATER PEA AWAT FR0011882364 XPAR - - €27.554
#> 97 AMUNDIETF CAC40(D) C4D LU1681047079 XPAR - - €75.27
#> 98 AmUSA Climate USA IE000QQ8Z0D8 XPAR - - €437.66
#> 99 AmUSA Climate USAC IE0006IP4XZ8 XPAR - - €464.337
#> 100 AMUSTRMULDETFP CL2 FR0010755611 ETFP - - €16.93
#> Percentage_change
#> 95 -1.59
#> 96 -0.44
#> 97 0.07
#> 98 0.55
#> 99 0.09
#> 100 1.06
# The number of columns and rows
dim(dt_1)
#> [1] 100 11
EN_Bonds_List receives as input tot_page which is the total number of pages to retrieve. In contrast, EN_Bonds_List_bis receives as input target_page which represents the target page. For example, the function EN_Bonds_List_bis(5), retrieves only the fifth page of the Bonds list, allowing more granular control of the data retrieval process (ordered list of 100 Bonds), whereas EN_Bonds_List(5) would return an ordered list of 500 Bonds listed on Euronext (on each page there are 100 Bonds, so for 5 pages 5*100 = 500).
# Get 1st 500 Bonds in alphabetic order
dt_b <- EN_Bonds_List()
head(dt_b[, c(2:9)])
#> Name Issuer Code_ISIN Market Maturity
#> 1 2019 PB RMBS TV EU 2019 POPOLARE BARI RMBS IT0005386724 XMOT 2069-05-31
#> 2 2019 PB RMBS TV EU 2019 POPOLARE BARI RMBS IT0005386724 XMOT 2069-05-31
#> 3 2019 PB RMBS TV EU 2019 POPOLARE BARI RMBS IT0005386724 XMOT 2069-05-31
#> 4 2I RETE GAS TF 2,1 2I RETE GAS IT0005386724 XMOT 2025-09-11
#> 5 2IRG 1.608% CALL 3 2I RETE GAS IT0005386724 ETLX 2027-10-31
#> 6 2IRG 1.75% CALL 28 2I RETE GAS IT0005386724 ETLX 2026-08-28
#> Coupon Last_price Percentage change
#> 1 0.0% - -
#> 2 0.0% - -
#> 3 0.0% - -
#> 4 0.0% - -
#> 5 0.0% 93.65 -0.62%
#> 6 0.0% - -
tail(dt_b[, c(2:9)])
#> Name Issuer Code_ISIN Market Maturity Coupon
#> 495 ALTARE1.75%16JAN30 ALTAREA NO0011058836 XPAR 2030-01-16 1.75%
#> 496 ALTARE2.25%05JUL24 ALTAREA NO0011058836 XPAR 2024-07-05 2.25%
#> 497 ALTARE2.45%14DEC26 ALTAREA NO0011058836 XPAR 2026-12-14 2.45%
#> 498 ALTARE2.875%2JUL18 ALTAREIT NO0011058836 XPAR 2025-07-02 2.875%
#> 499 ALTAREA1.875%JAN28 ALTAREA NO0011058836 XPAR 2028-01-17 1.875%
#> 500 ALTICE FINCO 4.75% ALTICE FINCO NO0011058836 ETLX 2028-01-15 0.0%
#> Last_price Percentage change
#> 495 - -
#> 496 105.75 5.75%
#> 497 - -
#> 498 102.09 2.85%
#> 499 80.64 -18.74%
#> 500 85.95 0.62%
# The number of columns and rows
dim(dt_b)
#> [1] 500 12
dt_b1 <- EN_Bonds_List_bis() #By default returns the list of 100 Bonds in alphabetic order
head(dt_b1[, c(2:9)])
#> Name Issuer Code_ISIN Market Maturity Coupon
#> 1 AGFY04 Agder fylkeskommune NO0011058836 XOSL 2024-07-26 0.897%
#> 2 AGFY05 Agder fylkeskommune NO0011058836 XOSL 2024-08-23 0.954%
#> 3 AGFY06 Agder fylkeskommune NO0011058836 XOSL 2025-04-16 1.47%
#> 4 AGFY07 Agder fylkeskommune NO0011058836 XOSL 2024-11-08 1.562%
#> 5 AGFY08 ESG Agder fylkeskommune NO0011058836 XOSL 2026-02-23 2.231%
#> 6 AGFY09 Agder fylkeskommune NO0011058836 XOSL 2028-04-25 3.997%
#> Last_price Percentage change
#> 1 - -
#> 2 - -
#> 3 - -
#> 4 - -
#> 5 - -
#> 6 - -
tail(dt_b1[, c(2:9)])
#> Name Issuer Code_ISIN Market Maturity Coupon
#> 95 ALTARE1.75%16JAN30 ALTAREA NO0011058836 XPAR 2030-01-16 1.75%
#> 96 ALTARE2.25%05JUL24 ALTAREA NO0011058836 XPAR 2024-07-05 2.25%
#> 97 ALTARE2.45%14DEC26 ALTAREA NO0011058836 XPAR 2026-12-14 2.45%
#> 98 ALTARE2.875%2JUL18 ALTAREIT NO0011058836 XPAR 2025-07-02 2.875%
#> 99 ALTAREA1.875%JAN28 ALTAREA NO0011058836 XPAR 2028-01-17 1.875%
#> 100 ALTICE FINCO 4.75% ALTICE FINCO NO0011058836 ETLX 2028-01-15 0.0%
#> Last_price Percentage change
#> 95 - -
#> 96 105.75 5.75%
#> 97 - -
#> 98 102.09 2.85%
#> 99 80.64 -18.74%
#> 100 85.95 0.62%
# The number of columns and rows
dim(dt_b1)
#> [1] 100 12
# Retrieve the ISIN for a company with ticker "abca"
EN_P_Ticker_adn("abca")
#> [1] "FR0004040608-XPAR"
# Example result for a valid ticker "AAA"
result <- EN_P_Ticker_adn("AAA")
print(result)
#> [1] "FR0000062465-XPAR"
# Example for a non-existing ticker "afsf"
print(EN_P_Ticker_adn("afsf")) # Ticker is not existing
#> [1] "Ticker not found"
The function takes a single parameter, ‘ticker,’ which can be the symbol, name, or ISIN of a given stock or index, and then returns its DNA.
To efficiently use the ‘Euronext’ package, it is important to understand how to handle Ticker Names, ISIN, and DNA, as many functions in the package rely on these. Note: There is a small difference between ISIN and DNA. Here’s a simple example: the ticker “4DDD” has the ISIN “US88554D2053,” and its DNA is “US88554D2053-ETLX.” As you can see, the DNA is composed of the ISIN and the market identifier “ETLX,” preceded by “-”.
Please refer to the respective functions EN_GetISIN(), EN_GetISIN_Etf(), EN_GetISIN_F(), and EN_GetISIN_B() if you wish to obtain a list of available Stocks or Indices, ETFs, Funds, and Bonds on Euronext.
# Get DNA of ticker "4DDD"
EN_GetISIN("4DDD")
#> [1] "US88554D2053-ETLX"
# Get DNA for the ticker name "ADS MARITIME HOLD"
EN_GetISIN("ADS MARITIME HOLD")
#> [1] "CY0108052115-MERK"
# Get DNA for ATENOR company by providing its ISIN
EN_GetISIN("BE0003837540")
#> [1] "BE0003837540-XBRU"
# Get Fund 'ACOMEA GLOBALE' DNA
aco_dna <- EN_GetISIN_F("ACOMEA GLOBALE")
# In case you want the ISI only
sub("-.*", "", aco_dna) #To get only the ISIN
#> [1] "IT0005091100"
# Get Fund 'ASNU SMALL MIDCAPF' DNA
asnu_dna <- EN_GetISIN_F("ASN5")
print(asnu_dna)
#> [1] "NL0014270217-XAMS"
# Get Fund 'COMPAM ACTIVE GLOB' DNA
EN_GetISIN_F("LU1275425897")
#> [1] "LU1275425897-ATFX"
# Get ETF 'AAPL' DNA
EN_GetISIN_Etf("AAPL")
#> [1] "XS2337099563-XAMS"
# Get ETF '-1X SHORT DIS' DNA
EN_GetISIN_Etf("-1X SHORT DIS")
#> [1] "XS2337085422-XAMS"
# Get ETF '3x Long Coinbase' DNA
EN_GetISIN_Etf("XS2399367254")
#> [1] "XS2399367254-XAMS"
#To get only the DNA of all same bonds issued
the_dna1 <- EN_GetISIN_B("ABN AMRO BANK N.V.")
print(the_dna1)
#> [1] "XS1344751968-XAMS"
the_isin1 <- sub("-.*", "", the_dna1) #To get only the ISINs
print(the_isin1)
#> [1] "XS1344751968"
#To get only the DNA of Bond 'A2A GREEN BOND TF'
the_dna2 = EN_GetISIN_B("A2A GREEN BOND TF")
the_isin2 =sub("-.*", "", the_dna2) #To get only the ISIN
print(the_isin2)
#> [1] "XS2403533263"